package cn.funeralobjects.ams.service;

import cn.funeralobjects.ams.model.ProductApiAccessDto;

import java.util.Optional;

/**
 * @author FuneralObjects
 * Create date: 2020/6/2 6:04 AM
 */
public interface ProductApiAccessService {

    /**
     * 绑定、更新 accessKey
     *
     * @param prodResId 产品资源id
     * @param prodApiId 产品访问的api id
     * @param accessId  访问秘钥
     */
    void bindOrUpdateAccessKey(Integer prodResId, Integer prodApiId, Integer accessId);

    /**
     * 解除绑定 accessKey
     *
     * @param prodResId 产品资源id
     * @param prodApiId 产品api
     */
    void unbindAccessKey(Integer prodResId, Integer prodApiId);

    /**
     * 获取绑定的accessKey
     *
     * @param prodResCode 产品资源编码
     * @param action      执行api的标识
     * @param version     执行api的版本
     * @return 秘钥信息
     */
    Optional<ProductApiAccessDto> getProductApiAccessKey(String prodResCode, String action, String version);

    /**
     * 获取绑定的accessKey
     *
     * @param prodResId 产品资源Id
     * @param action    执行api的标识
     * @param version   执行api的版本
     * @return 秘钥信息
     */
    Optional<ProductApiAccessDto> getProductApiAccessKey(Integer prodResId, String action, String version);

}
